共计 1182 个字符,预计需要花费 3 分钟才能阅读完成。
最近在搞 LCD,刚好用到 1622/1621 驱动芯片,网上看了很多,但是实际中还是有很多问题,比如不够说得有点模棱两可,或者比较专用,而且遇到的一些坑也没有详细记录,所以写个笔记记录一下。
一、硬件部分
1、含 LCD 驱动的单片机
LCD 可以直接用单片机或者 ic 来驱动,但是首先要看的是单片机是否有 LCD 驱动这个模块,如果没有的话是不能直接把端口连在 LCD 上,通过端口拉高和拉低来操作 LCD,因为 LCD 的引脚拉高或拉低不是立刻的,而是一个上升和下降的过程。比如复旦微的一款 FM33LG048 就支持 LCD 驱动。
2、不含 LCD 驱动的单片机
还有单片机没有这一个模块,这个时候就需要对每个引脚进行处理或者使用驱动 ic,每个引脚单独处理这方面未涉及,所以选的是驱动 ic 的方式。
3、驱动 ic 选型
找厂商定制 LCD 或者是从外面买的现成的 LCD,在硬件层面,有几个参数需要注意,一个是供电电压还有一个是偏压和占空比。这里也是容易忽略的地方。
1)两种 LCD 对比
下面是两种 LCD
1、LCD1
2、LCD2
常见的 LCD 驱动有 1622 和 1621,先对比一下相关的手册:
2)两种驱动芯片对比
1)1621
2)1622
3)驱动芯片选型
根据上述 LCD 的偏置和占空比,可以迅速进行选型:
- LCD1 选择 1621
- LCD2 选择 1622
注意: 选型错误可能导致亮度过低和可视角偏移。例如,正常情况下可视角范围为 -45° 到 45°,但使用错误的芯片可能会变为 0° 到 90°,这时需要将 LCD 抬高或倾斜才能清晰查看。
4、驱动 ic 外设电路
这里以 1621 为例,下图为推荐电路
这里只需考虑两个方面:首先,除了将 CS、RD 和 WR 三根线连接到单片机外,还需要关注 VLCD 的上拉电阻 VR,这与对比度有关。当 VR 为 0V 时,对比度达到最大;增大电阻会导致对比度降低。
如果对比度最大,即使不驱动,LCD 屏幕上可能会显示所有内容;而对比度过低时,即使驱动 LCD,屏幕也可能没有任何显示。
因此,VR 部分需要进行调节。例如,在单片机未运行程序的情况下,给整板上电,先将 VR 短接,观察显示效果(某些 LCD 在 VR 短接时,即使对比度最大,也可能不会全显示)。如果屏幕全显示,则可以使用变阻箱逐渐增大 VR,直到屏幕的显示刚好消失为止。下图为电路示例。
二、软件部分
1、前期准备:端口处理函数
2、端口配置成输出
不同单片机不同